package net.linku.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.linku.domain.LAPrivilege;
import net.linku.model.req.login.UserRequestParams;
import net.linku.model.req.privilege.AdminPrivilegeQuery;
import net.linku.model.req.privilege.AdminPrivilegeReq;
import net.linku.model.req.privilege.AdminStatusChangeReq;
import net.linku.model.resp.login.LAPrivilegeVO;

import java.util.List;

public interface LAPrivilegeService {

    /**
     * 根据用户请求参数获取权限数据
     *
     * @param userRequestParams 用户请求参数，包含租户ID和用户ID。
     * @return 符合条件的 LAPrivilege 列表。
     */
    List<LAPrivilege> getPrivilegesByAccountId(UserRequestParams userRequestParams);

    /**
     * 分页查询权限列表
     *
     * @param query 分页查询条件，包含当前页、页码和每页大小等信息。
     * @return 返回分页后的 LAPrivilegeVO 列表。
     */
    Page<LAPrivilegeVO> pagePrivilege(AdminPrivilegeQuery query);

    /**
     * 添加权限
     *
     * @param privilegeReq 新增的权限信息。
     * @return 返回是否添加成功的布尔值。
     */
    Boolean addPrivilege(AdminPrivilegeReq privilegeReq);

    /**
     * 更新权限
     *
     * @param privilegeReq 更新的权限信息。
     * @return 返回是否更新成功的布尔值。
     */
    Boolean updatePrivilege(AdminPrivilegeReq privilegeReq);

    /**
     * 删除权限
     *
     * @param statusChangeReq 权限ID列表，表示需要删除的权限。
     * @return 返回是否删除成功的布尔值。
     */
    Boolean deletePrivilege(AdminStatusChangeReq statusChangeReq);

}
